聊一下data science

您所在的位置:网站首页 ml ops 聊一下data science

聊一下data science

#聊一下data science| 来源: 网络整理| 查看: 265

01/21补充:这篇日志只关注data science。

tech行业的其他research+data相关职位,请参考此篇日志:https://www.douban.com/note/781330338/ 我觉得tech行业research+data相关的职位之后会越来越细分,大致根据expertise会分成:偏Research方向的:1) machine learning/ deep learning research scientist 2) operation research scientist: 3) economist; 偏Production方向的:4) data scientist: 5) data engineer: 6) machine learning engineer; 7) business intelligence engineer。

现在data scientist的分工比较模糊。这篇文章主要描述的是在一个well developed,production导向的team里面的data scientist的工作。由于行业发展问题,各个职位分工还在不断完善,所以可能会有些具体分工不一致。

今天因为@章鱼喵是差分机的一条广播:https://www.douban.com/people/emptymalei/status/3256819572/,还有昨天和@小白兔白也青的一些聊天,想集中写写自己对data science的看法,一些个人拙见,大家可以选择性参考下,要是我哪里说得不对(或者你觉得你描述的更准确),欢迎回复我!

disclaimer: 这篇文章是写data science的,如果你有很多top ML/DL/NLP/CV conference的一作paper,这篇文章不适合你,你适合research岗位,下面就可以不用读了~

1. 对于data science一些general看法

现在因为各个大厂或者startup都在推applied scientist和research scientist,大家现在似乎觉得data scientist低端,觉得做research更高大上,因为mle代码写的多,所以现在大家似乎觉得data scientist只会python,还只能用ipython notebook,不reproducible不工程化。还有就是从供给需求来说,data scientist是一个辅助性岗位,需求量并没有很大,之前网上说data science开始出现“内卷”趋势。我来聊一下我的看法。

(1)DS做啥?

首先来描述一下在一个well structured machine learning的组,data engineer, mle和ds的分工是如何的。举个例子,一个visual search的组想做一个新的deep learning ranking model,一般是data engineer来collect data+build data pipeline,mle来build model并且ship into production,然后data scientist来分析这个model对customer的一些影响,设计metrics,建dashboard,以及做一些experimental design,和A/B测试的东西。

(2)DS适合谁?

我觉得data science比较适合analytics or 统计方向本科+硕士,统计 or 生物统计 or 运筹 phd,或者其他方向转专业的理工科phd。

像是建立dashboard或者做一些分析,现在已经有很多python package了,主要在于你如何去讲好一个故事,这个就需要一些类似于consulting的技能,能讲好故事,能做好presentation。analytics or 统计方向本科+硕士就比较适合这个方向。

还有一些有关于实验设计,A /B测试等等比较in depth的统计topic就比较适合统计 or 生物统计的phd,然后一些运筹方向(比如optimization方向)就比较适合operation research的phd。

然后对于转专业的理工科phd,在coding技能不强,没有有深度的ml project的时候,DS是tech行业最匹配的职位。

(3)DS内卷?

有人说现在DS内卷非常严重,面试者有很多啥NLP/ CV的project,就是没有offer。然而实际上是什么呢?可能虽然写了很fancy的model,但是主要是github上面的repo改一改(基于huggingface transformers或者torch vision)pull个pretrained model在自己的data上finetune一下。这不是一个有深度的项目,不能说明你懂ds基础,更不能说明你懂NLP或者CV。同时,如果一些基础的东西不明白,比如不会写SQL,不能熟练使用pandas/ sklearn,那就只能说是眼高手低,一瓶子不满半瓶子晃荡了。这并不是内卷。

(4)转DS需要啥project?

我觉得最基本的是你的简历里面需要有一个project:1)show你会用基本的数据处理工具,比如sql或者pyspark,2)展示你会用常见的数据分析包;3)展示你可以做好一个分析,得到有insight的conclusion。

如果你有一定的数学基础,可以自己去实现一些ML算法,像是HMM,Gaussian Mixture Model之类的。这是来突出自己的数学优势的,像面试官说明即使你不懂,你能学并且你会学(数学工具你都会了)。

如果你能在现有模型的基础上,有一定创新性改进,那能证明你在熟练掌握基础的基础上还能创新,如果能有一篇ML DL方向的论文,那就简直是在ML求职领域可以简历秒杀了。

(5)DS想转MLE?

如果ds想转mle,那么有两个track。

1)转modeling方向的mle,我强烈建议有个domain expertise,而且这个domain需要是一个有门槛并且应用广的domain,比如NLP/ CV/ IR/ Optimization/ Recommendation Systems/ causal inference之类的,像是汽车能源医疗这种,基本数据都是可以抽象成为time series data之类的常见格式,一个从来没在这个行业做过但有统计基础的人也是可以快速进入的,但是NLP/ CV/ IR/ Optimization/ Recommendation Systems/ causal inference,进入就是有一定门槛的。

2)转ml infra方向,我一般不建议ds转这个方向,我建议sde,尤其是infra的sde转这个方向,这个方向对于ml的要求不是很高,但是对于software infra的要求比较高。

聊聊ML Ops

我们平时在讲ML Ops的时候可能会讲一些工具,比如AWS, sagemaker, GCP, Spark, Docker之类的。

我在LinkedIn上关注了Chip Huyen(https://www.linkedin.com/in/chiphuyen/),她会发一些关于ml ops的一些文章,比如一些工具:https://huyenchip.com/2020/12/30/mlops-v2.html

还有Machine Learning Systems Design这个课 https://docs.google.com/presentation/d/1WNN6GS-BM62BUfyJD3lbgCYE25eT0Ugo2SbSsSevDL4/mobilepresent?slide=id.p

github repo https://github.com/chiphuyen/machine-learning-systems-design

斯坦福ml systems seminar https://www.youtube.com/channel/UCzz6ructab1U44QPI3HpZEQ

berkeley full stack deep learning https://course.fullstackdeeplearning.com/

下面我来聊聊我平时涉及到的一些ML engineering的工作吧,即使没有任何工具,只是去完成一个DL project的话也应该去做好,当然如果有工具用工具会更省时间

(1)训练的更快,充分利用所有计算资源:大家可以去研究下torch distributed training,即使只有一个服务器但是有多个gpu,distributed data parallel也比data parallel快很多。还有比如mixed precision fp16 training啊,add sparsity啊都是可以研究研究的。

(2)experiment tracking:像是tensorboard(PyTorch就是用tensorboardX)以及像是一些工具(比如wandb weight & bias)就是帮助我们整理对照试验的,我的建议是哪怕你不用这些,最基本也得打出来log,记录training loss和dev set上的metrics。或者至少应该把每个实验的configuration存下来,而不是记在本子上或者excel上什么的,因为参数很容易搞错...

(3)hyperparameter tuning:像是一些工具比如ray [tune]就是去解决这些事情的

(4)deep learning model serving:当然是可以用flask建一个最简单的online serving,但是这个没有任何优化的online serving service latency肯定是很大的,一些优化的online serving(比如torch serve,tf serving以及nvidia的一些serving)就是做了优化,效果肯定会更好。

似乎现在只能想到这些,就先写这么多了~

© 本文版权归 Rexxx 所有,任何形式转载请联系作者。

© 了解版权计划



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3